go/types.operand.expr (field)
78 uses
go/types (current package)
assignments.go#L87: check.updateExprVal(x.expr, val)
assignments.go#L91: check.updateExprType(x.expr, newType, false)
assignments.go#L234: if sel, ok := x.expr.(*ast.SelectorExpr); ok {
assignments.go#L238: check.errorf(&x, UnaddressableFieldAssign, "cannot assign to struct field %s in map", ExprString(x.expr))
assignments.go#L242: check.errorf(&x, UnassignableOperand, "cannot assign to %s (neither addressable nor a map index expression)", x.expr)
builtins.go#L564: check.errorf(a, MismatchedTypes, invalidArg+"mismatched types %s (previous argument) and %s (type of %s)", x.typ, a.typ, a.expr)
builtins.go#L590: check.updateExprType(a.expr, x.typ, true)
call.go#L41: x.expr = ix.orig // if we don't have an index expression, keep the existing expression of x
call.go#L105: args = []*operand{{mode: value, expr: expr, typ: T.sig}}
call.go#L127: sig = check.instantiateSignature(x.Pos(), x.expr, sig, targs, xlist)
call.go#L184: x.expr = call.Fun
call.go#L194: x.expr = call
call.go#L227: x.expr = call
call.go#L236: x.expr = call
call.go#L253: x.expr = call
call.go#L269: x.expr = call
call.go#L280: x.expr = call
call.go#L323: x.expr = call
call.go#L396: x.expr = ix.orig
call.go#L411: resList[i] = &operand{mode: value, expr: e, typ: v.typ}
call.go#L433: x.expr = ix.orig
call.go#L524: at = args[npars].expr // report at first extra argument
call.go#L646: arg.typ = check.instantiateSignature(call.Pos(), arg.expr, asig, targs[j:k], nil) // TODO(gri) provide xlist if possible (partial instantiations)
call.go#L768: x.expr = e
call.go#L817: check.errorf(e.Sel, AmbiguousSelector, "ambiguous selector %s.%s", x.expr, sel)
call.go#L837: check.errorf(e.Sel, MissingFieldOrMethod, "%s.%s undefined (%s)", x.expr, sel, why)
call.go#L850: check.errorf(e.Sel, MissingFieldOrMethod, "%s.%s undefined (type %s has no method %s)", x.expr, sel, x.typ, sel)
call.go#L970: x.expr = e
call.go#L975: x.expr = e
const.go#L45: op := opName(x.expr)
const.go#L302: check.updateExprVal(x.expr, val)
const.go#L306: check.updateExprType(x.expr, newType, false)
conversions.go#L119: check.updateExprType(x.expr, final, true)
errors.go#L304: if x.expr != nil {
errors.go#L306: return posSpan{pos, pos, x.expr.End()}
expr.go#L199: x.expr = e
expr.go#L200: check.overflow(x, opPos(x.expr))
expr.go#L540: check.updateExprType(x.expr, Default(x.typ), true)
expr.go#L541: check.updateExprType(y.expr, Default(y.typ), true)
expr.go#L568: check.errorf(x, code, "invalid case %s in switch on %s (%s)", x.expr, y.expr, cause) // error position always at 1st operand
expr.go#L570: check.errorf(errOp, code, invalidOp+"%s %s %s (%s)", x.expr, op, y.expr, cause)
expr.go#L684: x.expr = e
expr.go#L685: check.overflow(x, opPos(x.expr))
expr.go#L710: if info, found := check.untyped[x.expr]; found {
expr.go#L712: check.untyped[x.expr] = info
expr.go#L764: x.expr = y.expr
expr.go#L838: x.expr = e
expr.go#L986: check.errorf(x.expr, WrongTypeArgCount, "cannot use generic %s %s without instantiation", what, x.expr)
expr.go#L1035: x.expr = e
expr.go#L1125: x.expr = e
expr.go#L1155: x.expr = e
expr.go#L1160: x.expr = e
expr.go#L1253: list[i] = &operand{mode: value, expr: e, typ: v.typ}
expr.go#L1261: x2 := &operand{mode: value, expr: e, typ: Typ[UntypedBool]}
index.go#L101: x.expr = e.orig
index.go#L175: x.expr = e.orig
infer.go#L134: err.addf(arg, "type %s of %s does not match %s (cannot infer %s)", targ, arg.expr, tpar, typeParamsString(tparams))
infer.go#L147: err.addf(arg, "inferred type %s for %s does not match type %s of %s", inferred, tpar, targ, arg.expr)
infer.go#L149: err.addf(arg, "type %s of %s does not match inferred type %s for %s", targ, arg.expr, inferred, tpar)
infer.go#L152: err.addf(arg, "type %s of %s does not match %s", targ, arg.expr, tpar)
literals.go#L79: x.expr = e // make sure that check.overflow below has an error position
literals.go#L80: check.overflow(x, opPos(x.expr))
operand.go#L61: expr ast.Expr
operand.go#L71: if x.expr == nil {
operand.go#L74: return x.expr.Pos()
operand.go#L135: if x.expr != nil {
operand.go#L136: expr = ExprString(x.expr)
recording.go#L34: assert(x.expr != nil && typ != nil)
recording.go#L39: check.rememberUntyped(x.expr, false, x.mode, typ.(*Basic), val)
recording.go#L41: check.recordTypeAndValue(x.expr, x.mode, typ, val)
stmt.go#L659: x.expr = &ast.Ident{NamePos: s.Body.Lbrace, Name: "true"}
stmt.go#L968: y.expr = lhs // we don't have a better rhs expression to use here
stmt.go#L1009: y.expr = lhs // we don't have a better rhs expression to use here
typexpr.go#L23: x.expr = e